API Documentation
PbsMaterial.h
1 // PbsMaterial.h
3 //
5 
6 namespace nkAstraeus
7 {
14  class PbsMaterial final : public Material
15  {
16  public :
17 
26 
27  // Getters
31  virtual MATERIAL_TYPE getType () const override ;
79  float getMetalness () const ;
83  float getRoughnessGlossiness () const ;
87  float getAlpha () const ;
183  bool getReconstructBinormals () const ;
184 
185  // Setters
234  void setLightDirection (const nkMaths::Vector& value) ;
242  void setLightColor (const nkMaths::Vector& value) ;
248  void setAlbedoColor (const nkMaths::Vector& value) ;
254  void setSpecularColor (const nkMaths::Vector& value) ;
260  void setEmissiveColor (const nkMaths::Vector& value) ;
268  void setEnvironmentColor (const nkMaths::Vector& value) ;
277  void setMetalness (float value) ;
287  void setRoughnessGlossiness (float value) ;
297  void setAlpha (float value) ;
403  void setEnvironmentTexture (nkGraphics::Texture* value, THREE_CHANNEL_PACK channels = THREE_CHANNEL_PACK::RGB, bool prefilteredEnv = false) ;
438  void setPbsModel (PBS_MODEL value) ;
466  void setReconstructBinormals (bool value) ;
467 
468  // Load
472  virtual bool load () override ;
476  virtual void unload () override ;
477  } ;
478 }
nkAstraeus::PbsMaterial::getEnvironmentTextureChannels
THREE_CHANNEL_PACK getEnvironmentTextureChannels() const
nkAstraeus::PbsMaterial::getSpecularTextureChannels
THREE_CHANNEL_PACK getSpecularTextureChannels() const
nkAstraeus::PbsMaterial::getMetalnessTexture
nkGraphics::Texture * getMetalnessTexture() const
nkAstraeus::PbsMaterial::getEmissiveTexture
nkGraphics::Texture * getEmissiveTexture() const
nkAstraeus::MATERIAL_TYPE
MATERIAL_TYPE
Lists all materials supported.
Definition: MaterialType.h:12
nkAstraeus::PbsMaterial::setLightColor
void setLightColor(const nkMaths::Vector &value)
nkAstraeus::PbsMaterial::getNormalAttributeName
nkMemory::StringView getNormalAttributeName() const
nkAstraeus::PbsMaterial::getMetalnessTextureChannels
ONE_CHANNEL_PACK getMetalnessTextureChannels() const
nkAstraeus::PbsMaterial::setIrradianceTextureIsCubeByDefault
void setIrradianceTextureIsCubeByDefault(bool value)
nkAstraeus::PbsMaterial::setLightDirection
void setLightDirection(const nkMaths::Vector &value)
nkAstraeus::PbsMaterial::getEmissiveColor
nkMaths::Vector getEmissiveColor() const
nkAstraeus::PbsMaterial::getIrradianceTextureIsCubeByDefault
bool getIrradianceTextureIsCubeByDefault() const
nkAstraeus::PbsMaterial::getAlbedoTextureChannels
THREE_CHANNEL_PACK getAlbedoTextureChannels() const
nkGraphics::Texture
A texture used for rendering, hosted on GPU.
Definition: Texture.h:35
nkAstraeus::PbsMaterial::getRoughnessGlossinessTexture
nkGraphics::Texture * getRoughnessGlossinessTexture() const
nkAstraeus::PbsMaterial::getLightColor
nkMaths::Vector getLightColor() const
nkAstraeus::PbsMaterial::setMetalness
void setMetalness(float value)
nkAstraeus::PbsMaterial::getNormalMapTexture
nkGraphics::Texture * getNormalMapTexture() const
nkAstraeus::PbsMaterial::setEmissiveColor
void setEmissiveColor(const nkMaths::Vector &value)
nkAstraeus::PbsMaterial
A Physically Based Shading material.
Definition: PbsMaterial.h:15
nkAstraeus::THREE_CHANNEL_PACK
THREE_CHANNEL_PACK
Enumeration of texture channels, packed by three. The channel order is encoded in each value,...
Definition: ThreeChannelPack.h:13
nkAstraeus::PbsMaterial::getOcclusionTextureChannels
ONE_CHANNEL_PACK getOcclusionTextureChannels() const
nkAstraeus::PbsMaterial::PbsMaterial
PbsMaterial()
nkAstraeus::PbsMaterial::getAlbedoColor
nkMaths::Vector getAlbedoColor() const
nkAstraeus::PbsMaterial::getNormalMapTextureChannels
THREE_CHANNEL_PACK getNormalMapTextureChannels() const
nkAstraeus::PbsMaterial::getRoughnessGlossiness
float getRoughnessGlossiness() const
nkAstraeus::PbsMaterial::getAlbedoTexture
nkGraphics::Texture * getAlbedoTexture() const
nkAstraeus::PbsMaterial::getRoughnessGlossinessTextureChannels
ONE_CHANNEL_PACK getRoughnessGlossinessTextureChannels() const
nkAstraeus::PbsMaterial::setEnvironmentColor
void setEnvironmentColor(const nkMaths::Vector &value)
nkAstraeus::PbsMaterial::getLightDirection
nkMaths::Vector getLightDirection() const
nkAstraeus::PbsMaterial::getIrradianceTextureChannels
THREE_CHANNEL_PACK getIrradianceTextureChannels() const
nkAstraeus::PbsMaterial::setEmissiveTexture
void setEmissiveTexture(nkGraphics::Texture *value, THREE_CHANNEL_PACK channels=THREE_CHANNEL_PACK::RGB)
nkAstraeus::PbsMaterial::setOcclusionTexture
void setOcclusionTexture(nkGraphics::Texture *value, ONE_CHANNEL_PACK channel=ONE_CHANNEL_PACK::A)
nkAstraeus::PbsMaterial::getTexCoordAttributeName
nkMemory::StringView getTexCoordAttributeName() const
nkAstraeus::PbsMaterial::getEnvironmentTexture
nkGraphics::Texture * getEnvironmentTexture() const
nkAstraeus::PbsMaterial::setRoughnessGlossinessTexture
void setRoughnessGlossinessTexture(nkGraphics::Texture *value, ONE_CHANNEL_PACK channel=ONE_CHANNEL_PACK::A)
nkAstraeus::PbsMaterial::getBinormalAttributeName
nkMemory::StringView getBinormalAttributeName() const
nkAstraeus::PbsMaterial::setIrradianceTexture
void setIrradianceTexture(nkGraphics::Texture *value, THREE_CHANNEL_PACK channels=THREE_CHANNEL_PACK::RGB)
nkAstraeus::PbsMaterial::getAlphaTexture
nkGraphics::Texture * getAlphaTexture() const
nkAstraeus::PbsMaterial::setTexCoordAttributeName
void setTexCoordAttributeName(nkMemory::StringView value)
nkAstraeus::PbsMaterial::getType
virtual MATERIAL_TYPE getType() const override
nkAstraeus::PbsMaterial::getPbsModel
PBS_MODEL getPbsModel() const
nkAstraeus::PbsMaterial::setAlpha
void setAlpha(float value)
nkAstraeus::PbsMaterial::setEnvironmentTextureIsCubeByDefault
void setEnvironmentTextureIsCubeByDefault(bool value)
nkAstraeus::ONE_CHANNEL_PACK::A
@ A
Alpha channel.
nkAstraeus::PBS_MODEL
PBS_MODEL
Lists the available PBS models available.
Definition: PbsModel.h:12
nkAstraeus::PbsMaterial::getMetalness
float getMetalness() const
nkAstraeus
Encompasses all API of component NilkinsAstraeus.
Definition: Engine.h:7
nkAstraeus::PbsMaterial::getIrradianceTexture
nkGraphics::Texture * getIrradianceTexture() const
nkAstraeus::PbsMaterial::setBinormalAttributeName
void setBinormalAttributeName(nkMemory::StringView value)
nkAstraeus::PbsMaterial::getSpecularColor
nkMaths::Vector getSpecularColor() const
nkAstraeus::PbsMaterial::getAlpha
float getAlpha() const
nkAstraeus::PbsMaterial::getEmissiveTextureChannels
THREE_CHANNEL_PACK getEmissiveTextureChannels() const
nkAstraeus::PbsMaterial::getPositionAttributeName
nkMemory::StringView getPositionAttributeName() const
nkMemory::StringView
Class holding information about a string, with no ownership over the data.
Definition: StringView.h:22
nkAstraeus::PbsMaterial::setAlbedoTexture
void setAlbedoTexture(nkGraphics::Texture *value, THREE_CHANNEL_PACK channels=THREE_CHANNEL_PACK::RGB)
nkAstraeus::PbsMaterial::setRoughnessGlossiness
void setRoughnessGlossiness(float value)
nkAstraeus::PbsMaterial::setAlbedoColor
void setAlbedoColor(const nkMaths::Vector &value)
nkAstraeus::PbsMaterial::~PbsMaterial
~PbsMaterial()
nkAstraeus::PbsMaterial::setEnvironmentTexture
void setEnvironmentTexture(nkGraphics::Texture *value, THREE_CHANNEL_PACK channels=THREE_CHANNEL_PACK::RGB, bool prefilteredEnv=false)
nkAstraeus::PbsMaterial::getSpecularTexture
nkGraphics::Texture * getSpecularTexture() const
nkAstraeus::ONE_CHANNEL_PACK
ONE_CHANNEL_PACK
Enumeration of texture channels, one by one.
Definition: OneChannelPack.h:12
nkAstraeus::PbsMaterial::getTangentAttributeName
nkMemory::StringView getTangentAttributeName() const
nkAstraeus::PbsMaterial::getOcclusionTexture
nkGraphics::Texture * getOcclusionTexture() const
nkAstraeus::PbsMaterial::getEnvironmentTextureIsCubeByDefault
bool getEnvironmentTextureIsCubeByDefault() const
nkAstraeus::PbsMaterial::load
virtual bool load() override
nkAstraeus::PbsMaterial::setPbsModel
void setPbsModel(PBS_MODEL value)
nkAstraeus::PbsMaterial::getReconstructBinormals
bool getReconstructBinormals() const
nkAstraeus::PbsMaterial::setSpecularColor
void setSpecularColor(const nkMaths::Vector &value)
nkAstraeus::Material
Base class for all materials in the component.
Definition: Material.h:16
nkAstraeus::PbsMaterial::setSpecularTexture
void setSpecularTexture(nkGraphics::Texture *value, THREE_CHANNEL_PACK channels=THREE_CHANNEL_PACK::RGB)
nkAstraeus::PbsMaterial::unload
virtual void unload() override
nkAstraeus::THREE_CHANNEL_PACK::RGB
@ RGB
Red, green, blue channels.
nkAstraeus::PbsMaterial::getEnvironmentColor
nkMaths::Vector getEnvironmentColor() const
nkAstraeus::PbsMaterial::setNormalMapTexture
void setNormalMapTexture(nkGraphics::Texture *value, THREE_CHANNEL_PACK channels=THREE_CHANNEL_PACK::RGB)
nkAstraeus::PbsMaterial::setTangentAttributeName
void setTangentAttributeName(nkMemory::StringView value)
nkAstraeus::PbsMaterial::setReconstructBinormals
void setReconstructBinormals(bool value)
nkMaths::Vector
A 4-component vector class, with floats.
Definition: Vector.h:12
nkAstraeus::PbsMaterial::getAlphaTextureChannels
ONE_CHANNEL_PACK getAlphaTextureChannels() const
nkAstraeus::PbsMaterial::setMetalnessTexture
void setMetalnessTexture(nkGraphics::Texture *value, ONE_CHANNEL_PACK channel=ONE_CHANNEL_PACK::A)
nkAstraeus::PbsMaterial::setAlphaTexture
void setAlphaTexture(nkGraphics::Texture *value, ONE_CHANNEL_PACK channel=ONE_CHANNEL_PACK::A)
nkAstraeus::PbsMaterial::setPositionAttributeName
void setPositionAttributeName(nkMemory::StringView value)
nkAstraeus::PbsMaterial::setNormalAttributeName
void setNormalAttributeName(nkMemory::StringView value)